/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.storage.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.storage.entity.Member;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * 会员DAO接口
 */
@MyBatisDao
public interface MemberDao extends CrudDao<Member> {

    /**
     * 根据手机号或者微信openid查找会员
     * @param platform 平台【APP或H5】
     * @param phone 手机号
     * @param openId 微信openid
     * @return 会员对象
     */
    Member findByPhoneOrOpenId(@Param("platform")String platform,@Param("phone") String phone, @Param("openId") String openId);

    /**
     * 根据手机号或者微信openid查找会员Id
     * @param platform 平台【APP或H5】
     * @param phone 手机号
     * @param openId 微信openid
     * @return 会员Id
     */
    String findIdByPhoneOrOpenId(@Param("platform")String platform,@Param("phone") String phone,@Param("openId") String openId);

    /**
     * 根据会员Id查找类型
     * @param memberId 会员Id
     * @return 会员类型
     */
    String findTypeById(@Param("memberId") String memberId);

    /**
     * 查询会员余额
     * @param memberId 会员Id
     * @return 会员余额
     */
    Double findBalanceById(@Param("memberId") String memberId);

    /**
     * 查询会员统计
     * @param memberId 会员Id
     * @return 会员统计
     */
    Map findStatisticsById(@Param("memberId") String memberId);

}
